import { http } from "@/utils/http";

/**
 * 获取题库列表
 * @param {Object} params - 请求参数
 * @returns {Promise} - 返回Promise对象
 */
export function getQuestionSetList(params) {
  return http({
    url: '/qa/questionSet/list',
    method: 'get',
    params
  })
}

/**
 * 创建题库
 * @param {Object} data - 请求数据
 * @returns {Promise} - 返回Promise对象
 */
export function createQuestionSet(data) {
  return http({
    url: '/qa/questionSet/add',
    method: 'post',
    data
  })
}

/**
 * 获取题库详情
 * @param {Object} params - 请求参数
 * @returns {Promise} - 返回Promise对象
 */
export function getQuestionSetDetail(params) {
  return http({
    url: `/qa/questionSet/detail/${params.id}`,
    method: 'get',
    params: {
      userId: params.userId
    }
  })
}

/**
 * 更新题库
 * @param {Object} data - 请求数据
 * @returns {Promise} - 返回Promise对象
 */
export function updateQuestionSet(data) {
  return http({
    url: '/qa/questionSet/edit',
    method: 'put',
    data
  })
}

/**
 * 删除题库
 * @param {Object} params - 请求参数
 * @returns {Promise} - 返回Promise对象
 */
export function deleteQuestionSet(params) {
  return http({
    url: '/qa/questionSet/delete',
    method: 'delete',
    params
  })
}

/**
 * 添加题目到题库
 * @param {Object} data - 请求数据
 * @returns {Promise} - 返回Promise对象
 */
export function addQuestionToSet(data) {
  return http({
    url: '/qa/questionSet/questionsAdd',
    method: 'post',
    data
  })
}

/**
 * 从题库移除题目
 * @param {Object} data - 请求数据
 * @returns {Promise} - 返回Promise对象
 */
export function removeQuestionFromSet(data) {
  return http({
    url: '/qa/questionSet/questionsRemove',
    method: 'put',
    data: {
      setId: data.setId,
      questionId: data.questionId,
      userId: data.userId
    }
  })
}

/**
 * 开始题库练习
 * @param {Object} data - 请求数据
 * @returns {Promise} - 返回Promise对象
 */
export function startExercise(data) {
  return http({
    url: '/qa/questionSet/exercise',
    method: 'post',
    data
  })
}

/**
 * 提交答案
 * @param {Object} data - 请求数据
 * @returns {Promise} - 返回Promise对象
 */
export function submitAnswer(data) {
  return http({
    url: '/qa/questionSet/answer',
    method: 'post',
    data
  })
}

/**
 * 获取练习历史
 * @param {Object} params - 请求参数
 * @returns {Promise} - 返回Promise对象
 */
export function getExerciseHistory(params) {
  return http({
    url: '/qa/questionSet/exerciseHistory',
    method: 'get',
    params
  })
}

/**
 * 获取练习结果
 * @param {Object} params - 请求参数
 * @returns {Promise} - 返回Promise对象
 */
export function getExerciseResult(params) {
  return http({
    url: `/qa/questionSet/exercise/${params.exerciseId}`,
    method: 'get',
    params
  })
}

